Prefetch staging is known as a technique for reducing the time to process read requests received from a host. When sequentiality is detected in read requests on a per-volume basis, the prefetch staging is performed to stage data into a cache memory in advance without waiting for a read request. For the prefetch staging, there are proposed control techniques for increasing a cache hit rate.
In addition, Redundant Arrays of Independent Disks (RAID) is known as a technique for protecting data against disk failures. In RAID, data is distributed across a plurality of disks to improve data protection and data access performance. In addition, RAID 5 and RAID 6 are each known as a RAID level that is a stripe set with distributed parity.
Please see, for example, Japanese Laid-open Patent Publication Nos. 2003-345519, 2007-249457, and 2008-310741.
In fixed-length prefetch staging, a storage control apparatus issues read commands for each disk. In the case of RAID 5 and RAID 6, data in each disk is divided into data blocks by parity. Therefore, the storage control apparatus may issue read commands for each of the data blocks.
In such prefetch staging, for example, a read command is issued “N” times to a disk forming a RAID group, and a read command is issued “N+1” times to another disk forming the RAID group. This imbalance in the numbers of read commands issued increases each time the prefetch staging is performed, which reduces the responsiveness of a specific disk.
A reduction in the responsiveness of a specific disk leads to degradation in the performance of the prefetch staging and thus lowers the throughput in sequential read.